「新規作成」メニューに追加したい

1999/08/29
Q:(一郎兄さん)
 のぶさん、よくエクスプローラなどの右クリックで新規作成っていうメニューがあるでしょ。あのメニューに自分の欲しいものを追加するにはどうしたらいいんだい。

[図1 新規作成メニュー]
新規作成メニュー

A:(延さん)
 やはり、このメニューもレジストリで制御されていますから、基本的にはレジストリエディタを使う必要があります。

Q:(貴子)
 またレジストリ? 面倒ね。

A:(延さん)
 まあレジストリエディタを操作しないでも、簡単に「新規作成」メニューに追加するツールもあります。それも今Windows98の標準で用意されるようになったもので、PowerToysというツール群の中のTweak UIというツールです。これについては後でまた説明しますが、一応「新規作成」の原理を理解するためにもレジストリでどのように記述するとメニューが作成できるのか見てみましょうか。

Q:(一郎兄さん)
 ん、がんばってみるよ。

A:(延さん)
 まず「新規作成」メニューは拡張子の単位に表示されます。「拡張子」は今更説明するまでもないと思いますが、これが分からない人は「関連付けについて」のページをよく読んでください。「拡張子」はファイルの関連付けと非常に密接な関係があります。ですからこの「拡張子」と関連する「新規作成」メニューも「ファイル関連付け」と極めて密接な関係があるので、いずれにしても「関連付けについて」のページでしっかり復習してください。

 一応上記のページを読んで、ある程度「関連付け」について理解しているという前提で話を進めます。またレジストリについて、更にレジストリエディタの使い方も「レジストリエディタの使い方」のページを読んで理解していることも前提です。いいですね?

Q:(初心者の皆さん)
 は〜い!

A:(延さん)
 まず「新規作成」メニューに出てくる拡張子の条件は、ある拡張子があるファイルタイプと関連付けされており、さらにそのファイルタイプが以下のような条件を備えていなければなりません。

 1. 「open」アクションがあること。
   ※「標準アクション」でないところがミソ!
 2. その「open」アクションに何らかのアプリケーションが関連付けされていること。
 3. 「タイプの説明」があること。

 このことが全然理解できない人は「関連付けについて」のページで復習してください。ただこれがちゃんと理解できてないからといって、全然「新規作成」が分からない訳でもないので、あまりかたくなになる必要もないですが。3番の「タイプの説明」の有無は結構重要です。

 さて上記のような条件を備えた「拡張子」のファイルの場合、レジストリのその拡張子キーの下に次ぎのようなキーが記述されていれば、「新規作成」メニューに現れ、新規作成を行うことができるようになります。

[図2 新規作成のためのレジストリ値(空ファイル)]
新規作成のためのレジストリ値(空ファイル)

 拡張子キー(例では「.psd」)の下にShellNewというキーがあり、その下に文字列値「NullFileという名前があればいい訳です。値はで構いません。これだけで上記の例ですと、「.psd」という拡張子のための「新規作成」メニューがでます。

 具体的な現れ方ですが、「.psd」というのは、例である私のパソコンの環境では下図ように、「PhotoShop.Image.5」というファイルタイプに関連付けられています。

[図3 ファイルタイプ]
ファイルタイプ

 図には表れませんが、このファイルタイプのタイプの説明「Adobe PhotoShop Image」になってます。よって、新規作成メニューにはこの「Adobe PhotoShop Image」というタイトルで、このファイルタイプに関連付けされたアイコンと共に表示されます。([図1 新規作成メニュー]参照)

Q:(貴子)
 ああ、だから「タイプの説明」が必要なのね。「タイプの説明」がないとメニューに表示するタイトルが決まらない。

A:(延さん)
 貴子にしては、いいところに気がついたね。その通りです。

 で、実際このメニューを選ぶと、実行されたフォルダに下記のように新規”タイプの説明”.拡張子という名称の(という命名基準で)中身が空のファイルが作成されます。

[図4 新規作成されたファイル]
新規作成されたファイル

 私は今「空のファイル」ができると言いました。しかし空のファイルではなくて、ある特定のファイルをテンプレート(雛型)として作成することもできます。「新規作成」機能の良さはむしろここにあると思います。テンプレートを利用するには、レジストリ記述はもう少し複雑なものになります。

[図5 新規作成のためのレジストリ値(テンプレート利用)]
新規作成のためのレジストリ値(テンプレート利用)

 文字列値の名前は「NullFile」ではなくてFileNameにして、値にある「ファイル名」(例では「sndrec.wav」)を記述します。で、ここからが大切なのでが、記述したこのファイル名で、利用したいテンプレートを「ShellNew」フォルダに置いておきます。「ShellNew」フォルダとは通常は「Windowsフォルダ\ShellNew」です。

[図6 ShellNewフォルダ]
ShellNewフォルダ

 これは私のパソコンの「ShellNew」フォルダですが、例の「Sndrec.wav」というファイルがあるのが分かるでしょう。これで「WAVEファイル」の新規作成では、このファイルをテンプレートに新規作成されます。作成されるファイルの命名基準はNullFileの場合(テンプレートを使わない場合)と同じです。

 この「ShellNew」フォルダですが、通常は「Windowsフォルダ\ShellNew」だと言いましたが、ユーザによって違う場合もありますし、ユーザ毎に自分で別のフォルダに変更することができます。

 レジストリ「HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders」キーの名前「templates」の値が当該ユーザの「ShellNew」フォルダになる訳です。

[図7 ShellNewフォルダの位置]
ShellNewフォルダの位置

 因みに記述したテンプレートファイル名の記述間違い手違いで、実際「ShellNew」フォルダに同名のものが無かったら、以下のようなエラーになるので、注意して下さい。実際ちゃんと用意したつもりでも、ShellNewフォルダ自体が違う場所だったりする場合もあるので、このようなエラーが出たら、ファイル名の確認はさることながら、実際ShellNewフォルダの位置も確認しましょう。

[図8 テンプレートが見つからない場合のエラーメッセージ]
テンプレートが見つからない場合のエラーメッセージ

 また下記のように記述し忘れなどで、テンプレート名称が単にの場合、奇妙な現象が起こることが確認されています。

[図9 テンプレート名称なし]
テンプレート名称なし

 この場合は、なぜか「ShellNew」フォルダそのものをテンプレートとして新規ファイルならぬ新規「フォルダ」が作成されてしまいます。

[図10 新規作成されてしまったShellNewフォルダ]
新規作成されてしまったShellNewフォルダ

 ShellNewフォルダがそのまま複写されているので、中には本物のShellNewフォルダにある数々のテンプレートが入っています。 もしこのような現象が起きたら、上記のようなレジストリ値になっていないかを確認して下さい。

 ところでこれまで、レジストリの文字列値として「NullFile」「FileName」について説明してきましたが、もうひとつcommandという文字列値もあります。この文字列値の場合は値に「実行コマンド(アプリケーションのパス)」を記述します。

[図11 コマンド指定]
コマンド指定

 図の例では、メモ帳の実行コマンド「C:\WINDOWS\NOTEPAD.EXE」を指定しています。また今までとは少し違う「%2」というパラメータ値が記述されています。このような記述をすることによって、当該新規作成を実行すると、指定アプリケーションを新規作成されるはずのファイルをパラメータ(これが%2の指定)として実行してくれます。

 ただしこの機能は新規作成そのものは行わないので、アプリケーションをまだ存在しない「新規作成されるはずのファイル名」をパラメータに指定して実行するだけです。従って指定アプリケーションから見ると、まだ存在しないファイルを開くように指定されたことになります。もしこのアプリケーションがそんなファイルは存在しないといって、実行を拒否したらこの機能は殆どその意味を失います。

 アプリケーションが存在しないファイルを指定された場合、自ら新規作成を行って開いてくれるような仕様になっていれば、新規作成とその新規ファイルの編集が1アクションでできるので大変便利な機能だと言えます。ただ残念ながらExcelやWordなど主要なアプリケーションは殆どそのような仕様になっていませんでした。またこの機能の場合、テンプレートの利用はできません。


 さて今までの説明では、レジストリ値に「拡張子」キーの下(直下に「ShellNew」というキーが記述されている例を挙げてきましたが、以下のように、間にファイルタイプ名」キーを挟んだものもあります。

[図12 ファイルタイプキーが間に入る場合]
ファイルタイプキーが間に入る場合

 この場合と、前述の拡張子キーの直下にある場合で、動作に違いは認められませんでした。同じように新規作成ができます。どのような違いがあるのかは現在分かっていません。また下記のように複数の異なったファイルタイプキーを挟んで複数のShellNewキーがあるものもあります。

[図13 複数のShellNewキーがある場合]
複数のShellNewキーがある場合

 実際使われるのは、自分のファイルタイプのもの(例では「Excel.Sheet.8」)です。他のもの(例では「Excel.Sheet.5」「Excel.WorkSheet」など)はどのような使われ方をするのかはまだ分かっていません。今調査中です。何も意味がないとは思えないので、分かり次第報告します。

Q:(のりこ)
 かなり難しいわね。私には全くお手上げだわ。

A:(延さん)
 確かにそうだね。じゃここで最初の方でも言ったけど、簡単に「新規作成」メニューが作れる「Tweak UI」というツールについて説明しましょう。

 もともとWindowsの標準では用意されていなかった様々な機能を提供する「PowerToys」というツールがWindows95の時代にありました。Microsoftが作ったものですが、とても便利なものだったので、多くの人が使っていたと思います。Windows NTでも同じものが使えます。この「PowerToys」というツール群の中の一つのツールがTweak UIです。Windows98になってこの「Tweak UI」だけ標準で用意されました。といっても普通の標準のインストールではインストールされないので、別途インストールする必要があります。

Windows98のCD-ROMの \tools\reskit\powertoy\Tweaui.inf を右クリックして「インストール(I)」を選択してください。インストールはこれだけです。Windowsの再起動後、コントロールパネルから「Tweak UI」を実行して下さい。ただしこのツールは英語版です。これを日本語化するソフトもインターネット上にありますので、探して日本語化してもいいでしょう。英語のままでもそれほど不便ではないですが。

[図14 Tweak UI の新規作成タブ]
Tweak UI の新規作成タブ

 上記「新規作成タブ」内のリストに、エクスプローラなどから希望のファイルドラッグアンドドロップするだけで、そのファイルをテンプレートとした「新規作成」ができるようになります。

Q:(のりこ)
 実に簡単ね。私はこれでいいわ。

Q:(貴子)
 私も。

A:(延さん)
 まあテンプレート利用もできるし、これで通常は十分だね。皆さん、「新規作成」についてよく分かりましたか?

Q:(初心者の皆さん)
 は〜い!


目次へ

PC用眼鏡【管理人も使ってますがマジで疲れません】 解約手数料0円【あしたでんき】 Yahoo 楽天 NTT-X Store

無料ホームページ 無料のクレジットカード 海外格安航空券 ふるさと納税 海外旅行保険が無料! 海外ホテル